1470f57f71fd44b053871c4314e9cba4a3f315b4,source_gen/jetbrains/mps/bootstrap/smodelLanguage/helgins/typeof_Property_HasValue_Simple_InferenceRule.java,typeof_Property_HasValue_Simple_InferenceRule,applyRule,#SNode#,21

Before Change


    if(!((Boolean)Queries.CustomExpression_check_isAppliedTo_SPropertyAccess_simpleProperty(argument))) {
      TypeChecker.getInstance().reportTypeError(argument, "\"'has value (simple)' is not expected here\"");
    }
    if(!((SLinkOperations.getTarget(argument, "value", true) == null))) {
      TypeChecker.getInstance().getRuntimeSupport().check(SLinkOperations.getTarget(argument, "value", true));
      if((Boolean)Queries.CustomExpression_check_isAppliedTo_SPropertyAccess_simpleStringProperty(argument)) {
        if(!(TypeChecker.getInstance().getSubtypingManager().isSubtype(TypeChecker.getInstance().getRuntimeSupport().typeOf(SLinkOperations.getTarget(argument, "value", true)), new QuotationClass_5().createNode()))) {
          TypeChecker.getInstance().reportTypeError(SLinkOperations.getTarget(argument, "value", true), "java.lang.String is expected");
        }
      }
      if((Boolean)Queries.CustomExpression_check_isAppliedTo_SPropertyAccess_simpleIntegerProperty(argument)) {
        if(!(TypeChecker.getInstance().getSubtypingManager().isSubtype(TypeChecker.getInstance().getRuntimeSupport().typeOf(SLinkOperations.getTarget(argument, "value", true)), new QuotationClass_6().createNode()))) {
          TypeChecker.getInstance().reportTypeError(SLinkOperations.getTarget(argument, "value", true), "integer is expected");
        }
      }
      if((Boolean)Queries.CustomExpression_check_isAppliedTo_SPropertyAccess_simpleBooleanProperty(argument)) {

After Change


          TypeChecker.getInstance().getRuntimeSupport().createLessThanInequation(TypeChecker.getInstance().getRuntimeSupport().typeOf(value), new QuotationClass_6().createNode(), value);
        } else 
        if(DataTypeUtil.isSimpleBoolean(((DataTypeDeclaration)SNodeOperations.getAdapter(dataType)))) {
          TypeChecker.getInstance().getRuntimeSupport().createLessThanInequation(TypeChecker.getInstance().getRuntimeSupport().typeOf(value), new QuotationClass_7().createNode(), value);
        } else 
        {
          TypeChecker.getInstance().reportTypeError(argument, "unknown property datatype: " + dataType);